package com.dumian.apple.database;

import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
    private UserOpenHelper dbHelper;
    //声明各个按钮
    private Button createBtn;
    private Button insertBtn;
    private Button updateBtn;
    private Button queryBtn;
    private Button deleteBtn;
    private Button ModifyBtn;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    //调用CreatView方法
        CreatView();
   //setListener方法
        setListener();
    }

    //通过findViewById获得Button对象的方法
    private void CreatView(){
        createBtn = (Button)findViewById(R.id.createDatabase);
        updateBtn = (Button)findViewById(R.id.updateDatabase);
        insertBtn = (Button)findViewById(R.id.insert);
        ModifyBtn = (Button)findViewById(R.id.update);
        queryBtn = (Button)findViewById(R.id.query);
        deleteBtn = (Button)findViewById(R.id.delete);
    }

    //为按钮注册监听的方法
    private void setListener(){
        createBtn.setOnClickListener(new CreateListener());
        updateBtn.setOnClickListener(new UpdateListener());
        insertBtn.setOnClickListener(new InsertListener());
        ModifyBtn.setOnClickListener(new ModifyListener());
        queryBtn.setOnClickListener(new QueryListener());
        deleteBtn.setOnClickListener(new DeleteListener());
    }

    //创建数据库的方法
    class CreateListener implements View.OnClickListener {

        @Override
        public void onClick(View v) {
            //创建 UserOpenHelper对象
            dbHelper = new UserOpenHelper(getBaseContext(),"ZZChat.db",null,2);
        //得到一个可读的SQLiteDatabase对象
            SQLiteDatabase db =dbHelper.getReadableDatabase();
        }
    }

    //更新数据库的方法
    class UpdateListener implements View.OnClickListener {

        @Override
        public void onClick(View v) {
        // 数据库版本的更新,由原来的1变为2
           dbHelper = new UserOpenHelper(getBaseContext(),"ZZChat.db",null,2);
            SQLiteDatabase db =dbHelper.getReadableDatabase();
        }
    }
    //插入数据的方法.添加好友
    class InsertListener implements View.OnClickListener {

        @Override
        public void onClick(View v) {
            dbHelper = new UserOpenHelper(getBaseContext(),"ZZChat.db",null,2);
           //得到一个可写的数据库 SQLiteDatabase的对象可以进行增删改查
            SQLiteDatabase db =dbHelper.getWritableDatabase();
            //生成ContentValues对象 //key:列名，value:想插入的值
            ContentValues values = new ContentValues();
             //往ContentValues对象存放数据，键-值对模式
            //插入第一组数据
            values.put("username", "aa");
            values.put("FriendName", "QQ");
            //调用insert方法，将数据插入数据库
            db.insert("Friends", null, values);
            values.clear();
            //插入第二组数据
            values.put("username", "小花");
            values.put("FriendName", "照照");
            //调用insert方法，将数据插入数据库
            db.insert("Friends", null, values);
            //插入第三组数据
            values.put("username", "故事");
            values.put("FriendName", "喵喵");
            //调用insert方法，将数据插入数据库
            db.insert("Friends", null, values);
            //关闭数据库
            db.close();
        }
    }

    //查询数据的方法 用户名VS密码
    class QueryListener implements View.OnClickListener {

        @Override
        public void onClick(View v) {

           dbHelper = new UserOpenHelper(getBaseContext(),"Users_db",null,1);
            //得到一个可写的数据库
            SQLiteDatabase db =dbHelper.getReadableDatabase();
/** 参数1：表名    参数2：要想显示的列   参数3：where子    参数4：where子句对应的条件值
    参数5：分组方式 参数6：having条件  参数7：排序方式**/
 Cursor cursor = db.query("Users.table",null,null,null, null, null, null);
            while(cursor.moveToNext()){
                //遍历cursor对象，取出数据并打印
                String username = cursor.getString(cursor.getColumnIndex("username"));
                String password = cursor.getString(cursor.getColumnIndex("password"));

                Log.d("query--->" , "用户名：" + username + " " + "密码：" + password);
            }
                //关闭数据库
            db.close();
        }
    }

    //修改数据的方法
    class ModifyListener implements View.OnClickListener {

        @Override
        public void onClick(View v) {

            dbHelper = new UserOpenHelper(getBaseContext(),"ZZChat.db",null,1);
    //得到一个可写的数据库
            SQLiteDatabase db =dbHelper.getWritableDatabase();
            ContentValues cv = new ContentValues();
            cv.put("username", "changeName_love");
    //where 子句 "?"是占位符号，对应后面的"1",
            String whereClause="id=?";
            String [] whereArgs = {String.valueOf(1)};
        //参数1 是要更新的表名
        //参数2 是一个ContentValeus对象
                //参数3 是where子句
            db.update("Users_table", cv, whereClause, whereArgs);
        }
    }

    //删除数据的方法
    class DeleteListener implements View.OnClickListener {

        @Override
        public void onClick(View v) {

           dbHelper = new UserOpenHelper(getBaseContext(),"ZZChat.db",null,1);
        //得到一个可写的数据库
            SQLiteDatabase db =dbHelper.getReadableDatabase();
            String whereClauses = "id=?";
            String [] whereArgs = {String.valueOf(2)};
        //调用delete方法，删除数据
            db.delete("Users_table", whereClauses, whereArgs);
        }
    }
}
